//
// Created by ls on 23-12-23.
//
#include <iostream>
#include <vector>

void printVector(const std::vector<int> &v)
{
  for (const auto it : v) {
    std::cout << it << " ";
  }
  std::cout << std::endl;
}

// vector 容器的容量和大小的操作
void test01()
{
  std::vector<int> v1;
  v1.reserve(18);
  for (int i = 0; i < 17; i++) {
    v1.push_back(i);
  }
  printVector(v1);

  if (v1.empty()) { // 为真
    std::cout << "v1 为空" << std::endl;
  } else {
    std::cout << "v1 不为空" << std::endl;
    std::cout << "v1 容量为：" << v1.capacity() << std::endl;
    std::cout << "v1 大小为：" << v1.size() << std::endl;
  }

  // 重新制定大小
  v1.reserve(20);
  printVector(v1);
  std::cout << "v1 容量为：" << v1.capacity() << std::endl;
  std::cout << "v1 大小为：" << v1.size() << std::endl;

  // 指定填充值
  v1.resize(20, 100);
  printVector(v1);

  v1.resize(5); // 如果指定的大小比原来短了，那么超出指定的部分会被删除， 但是容量保持不变
  v1.reserve(5);
  printVector(v1);
  std::cout << "v1 容量为：" << v1.capacity() << std::endl;
  std::cout << "v1 大小为：" << v1.size() << std::endl;
}

int main()
{
  test01();
  return 0;
}